package behavior.observer;

/**
 * @author lzp
 * @Date:2023/3/7
 * @description: 观察者模式 测试类
 */
public class ObserverDemo {

	public static void main(String[] args) {
		Store store = new Store();

		store.addObserver(new Admin("lzp"));
		store.addObserver(new Customer("小李"));
		store.addObserver(new Customer("老王"));

		// 同步通知测试
//		store.addNewProduct("王中王爆竹", 2, false);
//		store.setProduct("王中王爆竹", 5, false);
		// 异步通知测试 可以发现输出顺序和观察者的添加顺序不一致，因为线程的执行是由CPU决定的
		store.addNewProduct("王中王爆竹", 2, true);
		store.setProduct("王中王爆竹", 5, true);

	}

}
